using System;
using System.ServiceModel;

namespace WebService.ServiceContracts
{
    [ServiceContract(Namespace = "http://WebService.ServiceContracts/2007/10", Name = "IAdmin", SessionMode = SessionMode.Allowed)]
    public interface IAdmin
    {
        [FaultContract(typeof(WebService.FaultContracts.DefaultFaultContract))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AddUser")]
        WebService.ServiceContracts.AddUserResponse AddUser(WebService.ServiceContracts.AddUserRequest request);
        [FaultContract(typeof(WebService.FaultContracts.DefaultFaultContract))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GetAllUsers")]
        WebService.ServiceContracts.GetAllUsersResponse GetAllUsers(WebService.ServiceContracts.GetAllUsersRequest request);
        [FaultContract(typeof(WebService.FaultContracts.DefaultFaultContract))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "Login")]
        WebService.ServiceContracts.LoginResponse Login(WebService.ServiceContracts.LoginRequest request);
        [FaultContract(typeof(WebService.FaultContracts.DefaultFaultContract))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GetUserMoney")]
        WebService.ServiceContracts.GetUserMoneyResponse GetUserMoney(WebService.ServiceContracts.GetUserMoneyRequest request);
        [FaultContract(typeof(WebService.FaultContracts.DefaultFaultContract))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "UpdateUserMoney")]
        WebService.ServiceContracts.UpdateUserMoneyResponse UpdateUserMoney(WebService.ServiceContracts.UpdateUserMoneyRequest request);
    }
}
